跳到主要内容

与Arduino使用

快速开始

方糖摄像头入网流程,请参考基础使用中的——快速上手

库导入

在后面的教程里使用的是小喵的arduino主控Rosbot,自带一些板载设备。无需在外接模块。但这也需要导入相关软件库驱动。

  1. 软件库下载👆
  2. 根据图示进入库管理
  3. 选择刚才下载的文件,将他们添加

wifi遥控小车


简述
wifi模块收到无线指令“K2”时,会将数据转发到串口,从而实现无线遥控小车

案例实现

遥控模式
考虑到遥控机器人场景实用,且需求量大。所以小喵特地给摄像头制作了一个遥控模式
参考快速开始的网络配置部分,再次打开config.json文件,将此处修改为remoteControl
注意:不要把引号删了

接线

程序

  1. 复制以下代码到arduino ide
#include "KittenBot.h"

KittenBot kb;

String inputString = "";
boolean stringComplete = false;

void setup() {
Serial.begin(115200);
kb.init();
}

void loop() {
if (Serial.available()) {
char c = Serial.read();
if (c != '\r') {
if (c == '\n') {
stringComplete = true;
} else {
inputString += c;
}
if (stringComplete) {
Serial.println(inputString);
if (inputString == "CMD_UP") {
kb.motorSetSpeed(0, 255);
kb.motorSetSpeed(1, 255);
} else if (inputString == "CMD_DOWN") {
kb.motorSetSpeed(0, -255);
kb.motorSetSpeed(1, -255);
} else if (inputString == "CMD_LEFT") {
kb.motorSetSpeed(0, -255);
kb.motorSetSpeed(1, 255);
} else if (inputString == "CMD_RIGHT") {
kb.motorSetSpeed(0, 255);
kb.motorSetSpeed(1, -255);
} else if (inputString == "CMD_FUNC1") {
kb.motorSetSpeed(0, 0);
kb.motorSetSpeed(1, 0);
}
inputString = "";
stringComplete = false;
}
}
}
}
  1. 参考下图配置开发板rosbot的信息
  2. 上传代码
  3. 在浏览器输入192.168.0.135:80
    注意:此处的ip地址需要修改为你自己的摄像头ip,注意输入法设置,小数点和冒号都要是英文的
  4. 之后你可以通过键盘上下左右还有数字1和2来触发按键,如果是手机的话你也直接可以点击页面中的按钮

环境监测


简述

本实验是把摄像头作为WIFI模块,要求把IOT的数据传回 iot平台
使用温湿度模块以及亮度模块,可以获取植物附件的环境状态。这么做会有一个问题。
那就是只有人在附近的时候才能看到数据,十分鸡肋。
现在可以通过方糖摄像头模块的联网功能将数据上传到iot服务器,我们就可以随时随地的监测植物状态了!

关于iot平台

在后续的案例中,会需要连接iot服务器进行数据传输。如果你有自己的准备可以忽略这个步骤。如果你没有iot话题,这里建议大家使用🌏小喵的iot平台
有关小喵的iot平台的,请参考小喵的🌏iot平台介绍

案例实现

(如果你实现了上一个wifi遥控小车的案例,则需要把模式改回指令处理模式commandProcessing

接线

程序

参考上一个案例,设置设备属性、上传代码

#include "DHT.h"
#define DHTPIN 11
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);

void setup() {
Serial.begin(115200);
delay(1000);

dht.begin();
Serial.print("K20 iot.kittenbot.cn sugar-cam \r\n");
}

void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
return;
}

Serial.print("K23 /zzyhum "+String(h)+" \r\n");//
delay(2000);
Serial.print("K23 /zzytemp "+String(t)+" \r\n");
delay(2000);
Serial.print("K23 /zzylight "+String(analogRead(A3))+" \r\n");
delay(2000);

}

数据展示

音频播放

简述

使用摄像头模块播放内置音频的功能,可以在相应的场合出现音频指示,在没有显示屏的情况下可以更好地辅助操作。

案例实现

音频导入

  • 有sd卡
    1. 使用读卡器将音频拷贝进sd卡,音频文件名建议全英文、无特殊符号
    2. 之后将sd卡插入摄像头模块
    3. 然后按下复位键重启摄像头模块
    4. 之后在设置sd卡音频路径的时候,需要在前面加上sd,例如 K15 sd/test.mp3 \r\n
  • 无sd卡
    1. 使用usb连接摄像头模块,之后电脑会出现一个u盘
    2. 直接将音频文件拷贝进其中即可,请勿删改u盘的其他文件!

接线

程序


String myFiles[3] = {
"test1.mp3",
"test2.mp3",
"test3.mp3"
};
const int buttonPin = 11;
int currentFile = 0;

void setup() {
Serial.begin(115200);
pinMode(buttonPin, INPUT_PULLUP);
}

void loop() {
if (digitalRead(buttonPin) == LOW) {
Serial.print("K15 "+myFiles[currentFile]+" \r\n");
delay(1000);
currentFile++;
if (currentFile >= 3) {
currentFile = 0;
}
}
}